home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / kernel / sprite / Makefile < prev    next >
Encoding:
Makefile  |  1992-10-28  |  8.9 KB  |  380 lines

  1. #
  2. # $Header: /sprite/src/kernel/sprite/RCS/Makefile,v 1.51 92/06/04 13:29:09 jhh Exp Locker: mgbaker $ SPRITE (Berkeley)
  3. #
  4. # No mkmf
  5. #
  6. LD = /sprite/cmds.${MACHINE}/ld
  7.  
  8. # don't use TM, because that is set explicitly by the environment in some cases
  9. # and then we can't override it.  But set it by default to the current machine
  10. # type.
  11.  
  12. TM          ?= $(MACHINE)
  13.  
  14. #if make(sun3) || make(profile3)
  15. RTM = sun3
  16. MTFLAGS = -msun3
  17. #endif
  18. #ifmake ds3100
  19. RTM = ds3100
  20. MTFLAGS =
  21. #endif
  22. #ifmake ds5000
  23. RTM = ds5000
  24. MTFLAGS =
  25. #endif
  26. #ifmake sun4
  27. RTM = sun4
  28. MTFLAGS = -msun4
  29. #endif
  30. #ifmake sun4c
  31. RTM = sun4c
  32. MTFLAGS = -msun4
  33. #endif
  34.  
  35. #if !empty(TM)
  36. RTM ?= $(TM)
  37. #else
  38. RTM ?= $(MACHINE)
  39. #endif
  40.  
  41. MODULE = sprite
  42. SPRITEDIR =    /sprite/src/kernel
  43. USERH=        /sprite/lib/include
  44. H =        ${SPRITEDIR}/Include
  45. INSTALLED =    {SPRITEDIR}/Installed/${MODULE}
  46. LIB =        ${SPRITEDIR}/${RTM}.md
  47. PROFD =    ${SPRITEDIR}/Profiled/${RTM}.md
  48. ODIR =        ${RTM}.md
  49. IFLAGS=    -I. -I${H} -I${USERH} -I${USERH}/${RTM}.md -I${H}/${RTM}.md
  50. #PROFILE =    -p -DPROFILE
  51. PROFILE =
  52. CFLAGS =    ${MTFLAGS} -g -DKERNEL ${PROFILE} ${IFLAGS}
  53. LINTFLAGS =    -I. -I${H}
  54. LINTLIBS =    ${LINT}/*.ln
  55. DISTDIR     ?= /dist/sprite/src/kernel/sprite
  56.  
  57. KERNELNAME    ?= new
  58.  
  59. # symbol looked for by 'make nm'
  60. NM = mcount
  61.  
  62. UPDATE = /sprite/cmds.${MACHINE}/update
  63. TEST = /sprite/cmds.${MACHINE}/test
  64. MKVERSION = /sprite/cmds.${MACHINE}/mkversion
  65. RELEASE = 1
  66. NEWVERSION ?= TRUE
  67.  
  68. GINGER = ginger.Berkeley.EDU
  69. ENVY = envy.Berkeley.EDU
  70.  
  71. #
  72. #  Unprofiled object files
  73. #
  74.  
  75. #
  76. # For tracing undefined symbols
  77. TRACE =
  78.  
  79. #
  80. #  Uninstalled object files
  81. #
  82. TOP = ${SPRITEDIR}
  83.  
  84. MACH = ${TOP}/mach/${ODIR}
  85. DBG = ${TOP}/dbg/${ODIR}
  86. DEV = ${TOP}/dev/${ODIR}
  87. FS = ${TOP}/fs/${ODIR}
  88. FSCACHE = ${TOP}/fscache/${ODIR}
  89. FSCONSIST = ${TOP}/fsconsist/${ODIR}
  90. FSDM = ${TOP}/fsdm/${ODIR}
  91. FSIO = ${TOP}/fsio/${ODIR}
  92. FSLCL = ${TOP}/fslcl/${ODIR}
  93. FSPDEV = ${TOP}/fspdev/${ODIR}
  94. FSPREFIX = ${TOP}/fsprefix/${ODIR}
  95. FSRECOV = ${TOP}/fsrecov/${ODIR}
  96. FSRMT = ${TOP}/fsrmt/${ODIR}
  97. FSUTIL = ${TOP}/fsutil/${ODIR}
  98. HOOK = mainHook.o
  99. LFS = ${TOP}/lfs/${ODIR}
  100. LIBC = ${TOP}/libc/${ODIR}
  101. MAIN = ${TOP}/main/${ODIR}
  102. NET = ${TOP}/net/${ODIR}
  103. OFS = ${TOP}/ofs/${ODIR}
  104. PROC = ${TOP}/proc/${ODIR}
  105. PROF = ${TOP}/prof/${ODIR}
  106. RAID = ${TOP}/raid/${ODIR}
  107. RAIDNULL = ${TOP}/raid.null/${ODIR}
  108. RECOV = ${TOP}/recov/${ODIR}
  109. RPC = ${TOP}/rpc/${ODIR}
  110. SCHED = ${TOP}/sched/${ODIR}
  111. SIG = ${TOP}/sig/${ODIR}
  112. SYNC = ${TOP}/sync/${ODIR}
  113. SYS = ${TOP}/sys/${ODIR}
  114. TIMER = ${TOP}/timer/${ODIR}
  115. UTILS = ${TOP}/utils/${ODIR}
  116. VM = ${TOP}/vm/${ODIR}
  117. MEM = ${TOP}/mem/${ODIR}
  118. LIBC = ${TOP}/libc/${ODIR}
  119.  
  120. # This is the list of objects excluding raid.
  121.  
  122. INSTALLED_OBJS = \
  123.         ${LIB}/mach.o \
  124.     ${HOOK} \
  125.     ${LIB}/dbg.o \
  126.     ${LIB}/dev.o \
  127.     ${LIB}/fs.o \
  128.         ${LIB}/fsdm.o  \
  129.         ${LIB}/fscache.o  \
  130.         ${LIB}/fsconsist.o \
  131.         ${LIB}/fsio.o \
  132.         ${LIB}/fslcl.o \
  133.         ${LIB}/fspdev.o \
  134.         ${LIB}/fsprefix.o \
  135.         ${LIB}/fsrecov.o \
  136.         ${LIB}/fsrmt.o \
  137.         ${LIB}/fsutil.o \
  138.     ${LIB}/lfs.o \
  139.     ${LIB}/libc.o \
  140.     ${LIB}/main.o \
  141.     ${LIB}/mem.o \
  142.     ${LIB}/net.o \
  143.     ${LIB}/ofs.o \
  144.     ${LIB}/proc.o \
  145.     ${LIB}/prof.o \
  146.     ${LIB}/recov.o \
  147.     ${LIB}/rpc.o \
  148.     ${LIB}/sched.o \
  149.     ${LIB}/sig.o \
  150.     ${LIB}/sync.o \
  151.     ${LIB}/sys.o \
  152.     ${LIB}/timer.o \
  153.     ${LIB}/utils.o \
  154.     ${LIB}/vm.o
  155.  
  156. UNINSTALLED_OBJS =    \
  157.         ${MACH}/mach.o \
  158.     ${HOOK} \
  159.     ${DBG}/dbg.o \
  160.     ${DEV}/dev.o \
  161.     ${FS}/fs.o \
  162.         ${FSDM}/fsdm.o  \
  163.         ${FSCACHE}/fscache.o  \
  164.         ${FSCONSIST}/fsconsist.o \
  165.         ${FSIO}/fsio.o \
  166.         ${FSLCL}/fslcl.o \
  167.         ${FSPDEV}/fspdev.o \
  168.         ${FSPREFIX}/fsprefix.o \
  169.         ${FSRMT}/fsrecov.o \
  170.         ${FSRMT}/fsrmt.o \
  171.         ${FSUTIL}/fsutil.o \
  172.     ${LFS}/lfs.o \
  173.     ${LIBC}/libc.o \
  174.     ${MAIN}/main.o \
  175.     ${MEM}/mem.o \
  176.     ${NET}/net.o \
  177.     ${OFS}/ofs.o \
  178.     ${PROC}/proc.o \
  179.     ${PROF}/prof.o \
  180.     ${RECOV}/recov.o \
  181.     ${RPC}/rpc.o \
  182.     ${SCHED}/sched.o \
  183.     ${SIG}/sig.o \
  184.     ${SYNC}/sync.o \
  185.     ${SYS}/sys.o \
  186.     ${TIMER}/timer.o \
  187.     ${UTILS}/utils.o \
  188.     ${VM}/vm.o
  189.  
  190. # Everybody uses the raid module now.
  191.  
  192. OBJS =    ${INSTALLED_OBJS} \
  193.     ${LIB}/raid.o
  194.  
  195. OBJS_SUN4 =    ${OBJS}
  196.  
  197.  
  198. #
  199. # Profiled (perhaps) object files    ####################################
  200. #
  201.  
  202. PROFOBJS= ${LIB}/dbg.o    ${PROFD}/fs.o    ${LIB}/prof.o \
  203.     ${PROFD}/dev.o    ${PROFD}/net.o    ${PROFD}/sig.o \
  204.     ${PROFD}/main.o    ${HOOK}    \
  205.     ${PROFD}/mem.o    ${PROFD}/proc.o    ${PROFD}/rpc.o \
  206.     ${PROFD}/sched.o \
  207.     ${PROFD}/timer.o ${PROFD}/sync.o    ${PROFD}/utils.o \
  208.     ${PROFD}/vm.o \
  209.     ${PROFD}/sun.o    ${PROFD}/sys.o ${PROFD}/libc
  210.  
  211. ###############################################################################
  212.  
  213. ALLSRCS= Makefile version.c
  214.  
  215. HDRS = sprite.h
  216.  
  217. DISTFILES ?= Save SnapshotSources doversion mainHook.c \
  218.              porting_comments version.h.template
  219.  
  220. default: ${RTM}
  221.  
  222. dist:
  223. #if defined(DISTDIR) && !empty(DISTDIR)
  224.     for i in $(ALLSRCS) $(HDRS) $(DISTFILES)
  225.     do
  226.     if $(TEST) -e $${i}; then
  227.         $(UPDATE)  $${i} $(DISTDIR)/$${i} ;else true; fi
  228.     done
  229. #endif
  230.  
  231. .BEGIN: 
  232.     doversion ${RELEASE} ${NEWVERSION} version.h.template
  233.     SnapshotSources `awk '{print $5;}' version.h.template`
  234.  
  235. #sun2: ${OBJS} Makefile .PRECIOUS .NOEXPORT
  236. #    rm -f $@ version.o
  237. #    rm -f mainHook.o
  238. #    cc -c ${CFLAGS} mainHook.c
  239. #    ${MKVERSION} -p "SPRITE VERSION 1.0 (Sun2)" > version.h
  240. #    cc -c ${CFLAGS} version.c
  241. #    ${LD} -X -o $@ -e start -T 804000 ${OBJS} version.o
  242. #    @ls -l $@
  243. #    @size $@
  244. #    update -f -s $@ /sprite/boot/$@.sprite
  245. #    rcp /sprite/boot/$@.sprite ${ENVY}:/bnf2/sprite/sun2.${KERNELNAME}
  246. #    nm -n $@  > $@.nm
  247.  
  248. sun3: ${OBJS} Makefile .PRECIOUS .NOEXPORT
  249.     sed 's/MACHINE/$@/g' version.h.template > version.h
  250.     cat version.h >> $@.versionLog
  251.     -Save $@
  252.     rm -f mainHook.o
  253.     cc -c ${CFLAGS} mainHook.c
  254.     cc -c ${CFLAGS} version.c
  255.     ${LD} -X -msun3 -o $@ -e start -T e004000 ${OBJS} version.o
  256.     @ls -l $@
  257.     @size $@
  258.     update -f -s sun3 /sprite/boot/sun3.md/${KERNELNAME}
  259.     rcp /sprite/boot/sun3.md/${KERNELNAME} ${GINGER}:/tftpboot/sun3.md/${KERNELNAME}
  260.     #rcp sun3 ginger:/home/ginger/sprite/kernels/sun3.sprite
  261.     #rsh ginger -n "(cd /home/ginger/sprite/kernels ; ./Save sun3.sprite)"
  262.     nm -n sun3 > sun3.nm
  263.     -Save sun3
  264.  
  265. sun4: ${OBJS_SUN4} Makefile .PRECIOUS .NOEXPORT
  266.     sed 's/MACHINE/$@/g' version.h.template > version.h
  267.     cat version.h >> $@.versionLog
  268.     -Save $@
  269.     rm -f mainHook.o
  270.     cc -c ${CFLAGS} -Dsun4 mainHook.c
  271.     cc -c ${CFLAGS} -Dsun4 version.c
  272.     ${LD} -X -msun4 -o $@ -e start -T f6004020 ${OBJS_SUN4} version.o
  273.     @ls -l $@
  274.     @size $@
  275.     update -f -s $@ /sprite/boot/sun4.md/${KERNELNAME}
  276.     rcp /sprite/boot/sun4.md/${KERNELNAME} ${GINGER}:/tftpboot/sun4.md/${KERNELNAME}
  277.     rcp $@ ginger:/home/ginger/sprite/kernels/$@.`Version $@`
  278.     nm -n sun4 > sun4.nm
  279.     update -f sun4 /allspiceA/${KERNELNAME}
  280.     strip /allspiceA/${KERNELNAME}
  281.     -Save sun4
  282.  
  283. sun4c: ${OBJS} Makefile .PRECIOUS .NOEXPORT
  284.     sed 's/MACHINE/$@/g' version.h.template > version.h
  285.     cat version.h >> $@.versionLog
  286.     -Save $@
  287.     rm -f mainHook.o
  288.     cc -c ${CFLAGS} -Dsun4 -Dsun4c mainHook.c
  289.     cc -c ${CFLAGS} -Dsun4 -Dsun4c version.c
  290.     ${LD} -X -msun4 -o $@ -e start -T f6004000 ${OBJS} version.o
  291.     @ls -l $@
  292.     @size $@
  293.     update -f -s sun4c /sprite/boot/sun4c.md/${KERNELNAME}
  294.     nm -n sun4c > sun4c.nm
  295.     -Save sun4c
  296.  
  297. ds3100: ${OBJS} .PRECIOUS .NOEXPORT
  298.     sed 's/MACHINE/$@/g' version.h.template > version.h
  299.     cat version.h >> $@.versionLog
  300.     -Save $@
  301.     rm -f mainHook.o
  302.     cc -c ${CFLAGS} mainHook.c
  303.     @cc -c ${CFLAGS} version.c
  304.     ${LD} -N -o ds3100 -e start -T 80030000 ${OBJS} version.o
  305.     @ls -l $@
  306.     @size $@
  307.     update -f ds3100 /sprite/boot/ds3100.md/${KERNELNAME}
  308.     strip /sprite/boot/ds3100.md/${KERNELNAME}
  309.     rm -f ds3100.nm
  310.     nm -n ds3100 > ds3100.nm
  311.     -Save ds3100
  312.  
  313. ds5000: ${OBJS} .PRECIOUS .NOEXPORT
  314.     sed 's/MACHINE/$@/g' version.h.template > version.h
  315.     cat version.h >> $@.versionLog
  316.     -Save $@
  317.     rm -f mainHook.o
  318.     cc -c ${CFLAGS} mainHook.c
  319.     @cc -c ${CFLAGS} version.c
  320.     ${LD} -N -o ds5000 -e start -T 80030000 ${OBJS} version.o
  321.     @ls -l $@
  322.     @size $@
  323.     update -f ds5000 /sprite/boot/ds5000.md/${KERNELNAME}
  324.     strip /sprite/boot/ds5000.md/${KERNELNAME}
  325.     rcp $@ ginger:/home/ginger/sprite/kernels/$@.`Version $@`
  326.     rm -f $@.nm
  327.     nm -n $@ > $@.nm
  328.     update -f $@ /lustA/${KERNELNAME}
  329.     strip /lustA/${KERNELNAME}
  330.     -Save $@
  331.  
  332. # profile2: ${PROFOBJS} Makefile .PRECIOUS
  333. #    sed 's/MACHINE/$@/g' version.h.template > version.h
  334. #    cat version.h >> $@.versionLog
  335. #    rm -f $@
  336. #    rm -f mainHook.o
  337. #    cc -c ${CFLAGS} mainHook.c
  338. #    @cc -c ${CFLAGS} version.c
  339. #    ${LD} -msun2 -X -o $@ -e start -T 804000 ${PROFOBJS} version.o
  340. #    @ls -l $@
  341. #    @size $@
  342. #    update -f -s $@ /sprite/boot/$@.sprite
  343. #    rcp /sprite/boot/$@.sprite ${ENVY}:/bnf2/sprite/sun2
  344. #    nm -n $@ > $@.nm
  345.  
  346. profile3: ${PROFOBJS} Makefile .PRECIOUS
  347.     sed 's/MACHINE/$@/g' version.h.template > version.h
  348.     cat version.h >> $@.versionLog
  349.     rm -f $@
  350.     rm -f mainHook.o
  351.     cc -c ${CFLAGS} mainHook.c
  352.     @cc -c ${CFLAGS} version.c
  353.     ${LD} -msun3 -X -o $@ -e start -T e004000 ${PROFOBJS} version.o
  354.     @ls -l $@
  355.     @size $@
  356.     update -f -s $@ /sprite/boot/sun3.md/prof
  357.     rcp /sprite/boot/sun3.md/prof ${GINGER}:/tftpboot/tmp/$@
  358.     nm -n $@ > $@.nm
  359.  
  360. nm: ${OBJS}
  361.     ./NM ${NM} ${OBJS}
  362.  
  363. clean:
  364.     rm *.o sun2 sun3
  365.  
  366. # install: installhdrs /bnf/sprite/sprite
  367.  
  368. # installhdrs:
  369. #     @${UPDATE} ${HDRS} ${H}
  370. #     @${UPDATE} ${HDRS} ${INSTALLED}
  371.  
  372. .c.o:
  373.     rm -f $*.o
  374.     ${CC} ${CFLAGS} -c $*.c
  375.  
  376.  
  377.  
  378. mainHook.o: ${H}/proc.h ${H}/fs.h
  379. # DO NOT DELETE THIS LINE -- make depend depends on it.
  380.